1. De l’addition à la multiplication
Dans les cadres théoriques, les transformations linéaires et les translations (applications affines) sont souvent traitées séparément. Toutefois, les bibliothèques haute performance telles que BLAS (Sous-programmes fondamentaux d’algèbre linéaire) sont spécifiquement optimisées pour les produits matrice-vecteur et matrice-matrice. Pour tirer parti de ces noyaux, nous exprimons toutes les opérations sous la forme :
$$T(v) = Av$$
2. Coordonnées homogènes
Pour implémenter un décalage dans $\mathbf{R}^n$ à l’aide d’une matrice, nous passons à $\mathbf{R}^{n+1}$. Un vecteur $[x, y, z]^T$ devient $[x, y, z, 1]^T$. Ce « 1 supplémentaire » permet d’encoder une translation dans la dernière colonne d’une matrice $(n+1) \times (n+1)$.
Une translation par $v_0 = [t_x, t_y, t_z]^T$ est représentée par :
$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$
Les nombres $0, 0, 0, 1$ de la dernière ligne jouent un rôle crucial. Lorsque $A$ multiplie un vecteur dont le composant final est $1$, le composant final résultant est :
$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$
Cela garantit que la nature « affine » des données est préservée, permettant des opérations séquentielles sans altérer l'intégrité du système de coordonnées.
3. Normes d'implémentation : BLAS
L'efficacité numérique repose sur des sous-programmes standardisés. BLAS fournit trois niveaux d'opérations :
- Niveau 1 : Opérations vecteur-vecteur (par exemple, produits scalaires).
- Niveau 2 : Opérations matrice-vecteur ($Ax+b$).
- Niveau 3 : Opérations matrice-matrice ($AB+C$), qui sont les plus denses en calcul et les plus efficaces au niveau matériel.